;
(function($) {

	/**
	 * @param {Object} n 名称
	 * @param {Object} i id
	 */
	function dtype(n, i) {
		var d = {
			name: n,
			typeId: +i,
			subTypes: {},
			addSub,
		}

		function addSub(subtype) {
			d.subTypes[subtype.name] = subtype;
		}
		return d;
	};
	//hSendToUnity(hJsApi("SetStateByTypeId", {enable:true,typeId:33,modelType:199}));

	var tps = ['摄像头	1	枪机摄像头	1',
		'摄像头	1	球机摄像头	2',
		'摄像头	1	半球摄像头	3',
		'摄像头	1	火焰摄像头	145',
		'摄像头	1	热成像摄像头	146',
		'摄像头	1	电梯专用摄像头	147',
		'摄像头	1	人脸识别摄像头	148',
		'摄像头	1	地铁站摄像头	276',
		'摄像头	1	高空鹰眼摄像头	284',
		'立杆和支架	2	室外立杆	4',
		'立杆和支架	2	室内支架	5',
		'报警设备	3	告警灯	123',
		'报警设备	3	门磁探测器	264',
		'报警设备	3	震动探测器	265',
		'报警设备	3	驻波探测器	266',
		'报警设备	3	双鉴探测器	267',
		'报警设备	3	玻璃破碎探测器	268',
		'报警设备	3	被动红外探测器	269',
		'报警设备	3	红外对射探测器	15',
		'报警设备	3	烟雾报警器	17',
		'报警设备	3	红外三鉴探测器	84',
		'报警设备	3	电子围栏	92',
		'消防器材	7	消火栓	18',
		'消防器材	7	结合器	19',
		'消防器材	7	微型消防站	79',
		'消防器材	7	消防柜	96',
		'消防器材	7	消防水压计	97',
		'消防器材	7	消防喷淋头	135',
		'消防器材	7	消防水泵	136',
		'消防器材	7	灭火器	137',
		'基站	8	蓝牙基站	16',
		'消防设备	9	消防按钮	247',
		'消防设备	9	消控主机	122',
		'消防设备	9	消防水箱	20',
		'消防设备	9	应急照明灯	67',
		'消防设备	9	安全出口灯	78',
		'消防设备	9	火灾显示盘	254',
		'消防车辆	11	A类泡沫车	22',
		'消防车辆	11	AB类泡沫车	23',
		'消防车辆	11	普通消防车	24',
		'消防车辆	11	云梯消防车	25',
		'消防车辆	11	云梯救援车	28',
		'消防车辆	11	防化消防车	110',
		'消防车辆	11	干粉泡沫联用车	111',
		'消防车辆	11	高喷消防车	112',
		'消防车辆	11	救护消防车	113',
		'消防车辆	11	排烟消防车	114',
		'消防车辆	11	器材消防车	115',
		'消防车辆	11	抢险消防车	116',
		'消防车辆	11	水罐消防车	117',
		'消防车辆	11	物资消防车	118',
		'消防车辆	11	洗消消防车	119',
		'消防车辆	11	照明消防车	120',
		'消防车辆	11	指挥消防车	121',
		'能耗设备	12	水表	29',
		'能耗设备	12	电表	30',
		'能耗设备	12	燃气表	50',
		'道具盒子	13	照片盒子	31',
		'安检设备	14	安检机	141',
		'安检设备	14	人脸识别机	32', //闸机
		'桥架	15	水平单通桥架	33',
		'桥架	15	水平弯桥架	34',
		'桥架	15	垂直上弯桥架	35',
		'桥架	15	垂直下弯桥架	36',
		'桥架	15	爬坡弯桥架	37',
		'桥架	15	过桥弯桥架	38',
		'桥架	15	过梁弯桥架	39',
		'桥架	15	水平弯三通桥架	40',
		'桥架	15	上边垂直三通桥架样式一	41',
		'桥架	15	下边垂直三通桥架	42',
		'桥架	15	上角垂直三通桥架	43',
		'桥架	15	下角垂直三通桥架	44',
		'桥架	15	上边垂直三通桥架样式二	81',
		'巡更点	16	巡更点	45',
		'消防标识	17	取水点	129',
		'消防标识	17	安全出口	130',
		'消防标识	17	登高救援点	131',
		'消防标识	17	箭头	132',
		'消防标识	17	消控室	133',
		'消防标识	17	重点部位	134',
		'消防标识	17	隐患标注	47',
		'消防标识	17	警告	48',
		'巡查点	19	巡查点	51',
		'机柜设备	20	机柜	52',
		'机柜设备	20	密封机柜	138',
		'网络设备	21	服务器	53',
		'网络设备	21	配线架	54',
		'网络设备	21	交换机	100',
		'网络设备	21	存储器	101',
		'网络设备	21	防火墙	102',
		'网络设备	21	上网行为管理	103',
		'网络设备	21	路由器	104',
		'网络设备	21	硬盘录像机	105',
		'网络设备	21	VPN	106',
		'网络设备	21	控制模块	107',
		'网络设备	21	工控机	108',
		'网络设备	21	信号采集箱	109',
		'面板设备	22	网孔面板	255',
		'面板设备	22	电源插座面板	241',
		'面板设备	22	网络面板	56',
		'面板设备	22	光纤面板	60',
		'面板设备	22	电话面板	61',
		'面板设备	22	电视面板	62',
		'标签	23	导航标签	59',
		'标签	23	图片标签	82',
		'标签	23	视频标签	83',
		'标签	23	动态文字标签	91',
		'标签	23	文字标签	198',
		'ba系统设备	29	传感器	63',
		'ba系统设备	29	液体流量计	64',
		'ba系统设备	29	DDC控制柜	65',
		'ba系统设备	29	阀门	161',
		'ba系统设备	29	水泵	162',
		'ba系统设备	29	暖通管路	163',
		'ba系统设备	29	吊顶射流空调机组	164',
		'ba系统设备	29	板换	176',
		'ba系统设备	29	分水器	177',
		'ba系统设备	29	水箱	178',
		'ba系统设备	29	冷热风泵	179',
		'ba系统设备	29	冷凝蒸发器	180',
		'ba系统设备	29	空压机	181',
		'ba系统设备	29	新风管道	182',
		'ba系统设备	29	出风口	183',
		'ba系统设备	29	风阀	184',
		'ba系统设备	29	冷媒	224',
		'ba系统设备	29	面板	225',
		'ba系统设备	29	送风口	256',

		'照明设备	31	路灯设备	68',
		'教室设备	33	教室课桌	69',
		'教室设备	33	教室椅子	70',
		'教室设备	33	教室讲台	71',
		'教室设备	33	电子黑板	72',
		'教室设备	33	壁挂音响	73',
		'教室设备	33	大屏设备	216',
		'教室设备	33	电脑	211',
		'教室设备	33	灯具	150',
		'教室设备	33	电扇	151',
		'教室设备	33	教室班牌	152',
		'教室设备	33	电子班牌	199',
		'监控设备	34	监看大屏	74',
		'监控设备	34	监控操作台	75',
		'监控设备	34	监控主机	95',
		'宿舍设备	35	床铺	76',
		'门禁设备	36	门禁一体机	77',
		'门禁设备	36	出口按钮	217',
		'门禁设备	36	可视对讲机	253',
		'门禁设备	36	伸缩门	142',
		'门禁设备	36	磁力锁	286',
		'交通设备	37	道路栏杆	218',
		'交通设备	37	船	219',
		'交通设备	37	车闸	189',
		'交通设备	37	停车设备	195',
		'交通设备	37	交通指示牌(灯)	124',
		'交通设备	37	红绿灯	143',
		'交通设备	37	汽车	80',
		'交通设备	37	路障	94',
		'地下管网设备	38	雨水	170',
		'地下管网设备	38	燃气	171',
		'地下管网设备	38	电力	172',
		'地下管网设备	38	热力	173',
		'地下管网设备	38	监控	174',
		'地下管网设备	38	污水	175',
		'地下管网设备	38	管件	85',
		'地下管网设备	38	给水	93',
		'风道设备	39	通风口	90',
		'办公设备	41	办公置物柜	238',
		'办公设备	41	打印机	242',
		'办公设备	41	电视	244',
		'办公设备	41	电子屏	245',
		'办公设备	41	室内隔断	248',
		'办公设备	41	沙发	249',
		'办公设备	41	讲台桌	262',
		'办公设备	41	办公桌椅	139',
		'办公设备	41	电脑	140',
		'配电设备	42	配电箱	98',
		'配电设备	42	UPS设备	99',
		'配电设备	42	变压器	200',
		'配电设备	42	配电屏	201',
		'配电设备	42	变频控制柜	202',
		'配电设备	42	高压计量柜	203',
		'配电设备	42	机组控制系统	204',
		'配电设备	42	现场操作箱	205',
		'配电设备	42	进线柜	206',
		'配电设备	42	出线柜	207',
		'配电设备	42	隔离柜	208',
		'配电设备	42	空开盒	209',
		'空调设备	43	面板	220',
		'空调设备	43	空调	125',
		'自助服务设备	44	自助机	126',
		'自助服务设备	44	快递柜	127',
		'垃圾处理设备	45	垃圾桶	128',
		'垃圾处理设备	45	垃圾车	194',
		'周边建筑模型	46	独栋配楼	144',
		'标牌	47	楼标	149',
		'体育设备	48	台球设备	280',
		'体育设备	48	乒乓设备	281',
		'体育设备	48	健身房设备	279',
		'体育设备	48	跑步设备	221',
		'体育设备	48	足球设备	190',
		'体育设备	48	篮球设备	153',
		'机场设备	49	机场座椅	158',
		'车间设备	50	货架	154',
		'车间设备	50	货箱	155',
		'车间设备	50	料架	156',
		'车间设备	50	车间装饰	157',
		'卫生间设备	51	马桶	159',
		'卫生间设备	51	纸巾盒	259',
		'卫生间设备	51	厕所感应灯	250',
		'卫生间设备	51	厕所门牌	251',
		'卫生间设备	51	厕所门牌	252',
		'公用设备	52	按摩椅	285',
		'公用设备	52	水吧台	243',
		'公用设备	52	饮水机	239',
		'公用设备	52	装饰画	263',
		'公用设备	52	地球仪	258',
		'公用设备	52	净水器	160',
		'医院设备	53	病房护理设备	165',
		'医院设备	53	医疗器械设备	166',
		'医院设备	53	医院公共设施	167',
		'医院设备	53	药房设备	168',
		'仓库设备	54	货架	169',
		'仓库设备	54	货物	185',
		'仓库设备	54	条码设备	186',
		'绿化	55	行道树	187',
		'绿化	55	树丛	188',
		'绿化	55	草	193',
		'导航设备	56	导航点	191',
		'地形	57	岩石	192',
		'音响设备	58	壁挂音响	196',
		'音响设备	58	室外音响	197',
		'音响设备	58	拾音器	270',
		'实验室设备	59	试验器材	210',
		'探测设备	60	温湿度传感器	212',
		'探测设备	60	漏水探测器	213',
		'探测设备	60	漏电探测器	214',
		'网关设备	61	边缘网关	222',
		'箭头设备	62	箭头	223',
		'核酸设备	63	全自动核酸提取仪	226',
		'核酸设备	63	生物安全柜	227',
		'核酸设备	63	Drext-DP400封闭式全自动开盖分杯系统	228',
		'核酸设备	63	医用冷藏保存箱 样式1	229',
		'核酸设备	63	医用冷藏保存箱 样式2	230',
		'核酸设备	63	脉动真空蒸汽灭菌器	231',
		'核酸设备	63	PCR检测仪	232',
		'核酸设备	63	PCR试管穿孔板	233',
		'核酸设备	63	PCR试管	234',
		'核酸设备	63	架子 样式1	235',
		'核酸设备	63	架子 样式2	236',
		'核酸设备	63	架子 样式3	237',
		'灯控设备	64	灯控按钮	240',
		'门牌设备	65	门牌	246',
		'门牌设备	65	指引牌	257',
		'人物模型	66	男性	260',
		'人物模型	66	女性	261',
		'餐厅设备	67	冰柜	271',
		'餐厅设备	67	餐厅货架	272',
		'餐厅设备	67	蒸箱	273',
		'餐厅设备	67	洗菜池	274',
		'餐厅设备	67	烤箱	275',
		'餐厅设备	67	保温炉	282',
		'餐厅设备	67	餐厅灯具	283',
		'灌溉设备	68	灌溉器	277',
		'气象设备	69	气象站	278',
	]


	var deviceType = {};
	for (var i = 0; i < tps.length; i++) {
		var item = tps[i].split(/[\s]/);
		var n = item[0],
			subn = item[2];

		var mtype = deviceType[n] || new dtype(n, item[1]);
		var subtype = new dtype(subn, item[3]);
		deviceType[n] = mtype;
		mtype.addSub(subtype);
	}


	/**
	 * @param {Object} name   主类型名称
	 * @param {Object} subName 子类型名称
	 */
	function hGetTypeByName(name, subName) {
		var d = deviceType[name];
		return {
			typeId: d.typeId,
			modelType: d.subTypes[subName]?.typeId || -1
		}
	}

	/**
	 * 关闭所有设备的高亮状态
	 */
	function hCloseAllActive() {
		hSendToUnity(hJsApi("SetStateByTypeId", {
			enable: false,
			typeId: -1,
			modelType: -1
		}));
	}

	window['scene'] = {
		deviceType: deviceType,
		hGetTypeByName
	}
})();

/**
 * 场景设备
 */
class SceneDev{
	sceneName;
	devs;
	constructor(sName){
		this.sceneName=sName;
		this.devs=[];
	}
	
	Add(mtype,stype,dat){		
		
	}
}